1. Field of the Invention
The invention relates to security in a computer system, and more particularly to permitting access to secured computer resources based upon comparison of a hash value representation of a plain text user password and a hash value stored in an external token.
2. Description of the Related Art
Today's businesses invest large amounts of money in hardware and software, and even more money is spent developing information contained in data files such as text documents and spreadsheets. Protecting such investments can be critical to the success and reputation of a business. Public accounts of the exploits of computer "hackers"--as malicious code-breakers or eavesdroppers are sometimes called--have therefore focused and magnified corporate desires for secure communications and better methods of protecting data. The scope of the problem is undoubtedly even more serious than reported, given the reluctance of many businesses to report security breaches. As a result, security conscious users are requesting that security and integrity features be incorporated into their computers to restrict access to data contained on hard drives, as well as information contained in other critical system components.
One known approach to security involves encryption or cryptography. Cryptography is typically used to protect both data and communications. Generally, the original message or data item is referred to as "plain text", while "encryption" denotes the process of disguising or altering a message in such a way that its substance is not readily discernable. An encrypted message is called "ciphertext". Ciphertext is returned to plain text by an inverse operation referred to as "decryption". Encryption is typically accomplished through the use of a cryptographic algorithm, which is essentially a mathematical function. The most common cryptographic algorithms are key-based, where special knowledge of variable information called a "key" is required to decrypt ciphertext. There are many types of key-based cryptographic algorithms, providing varying levels of security.
The two most prevalent cryptographic algorithms are generally referred to as "symmetric" (also called secret key or single key algorithms) and "public key" (also called asymmetric algorithms). The security in these algorithms is centered around the keys--not the details of the algorithm itself. This makes it possible to publish the algorithm for public scrutiny and then mass produce it for incorporation into security products.
One problem with key-based algorithms is speed. Public key algorithms, in particular, are typically on the order of 1,000 times slower than symmetric algorithms. Even symmetric algorithms can be slow when compared with so-called "one-way functions" (also known as "one-way hash functions").
Briefly, a typical one-way hash function, denoted H(M), operates on an arbitrary-length block of text or message M. The one-way hash function returns a fixed-length hash value, h, such that h=H(M), were h is of length m. One-way hash functions have special characteristics that make them one-way. Given M, for example, it is easy to compute h. Given h, it is hard reverse the hashing process and compute M such that H(M)=h. Further, it is very difficult to find another message, M', such that H(M)=H(M'). In essence, the one-way hash function provides a "fingerprint" of M that is unique, and is therefore frequently used for purposes of authenticating the source of a message.
While much attention has been given to protecting and authenticating communications and data as they are transmitted via internal networks (intranets) and external networks (such as the Internet), fewer security improvements have focused on protecting the hardware itself. One known method of offering limited access to hardware and the data it contains is by the use of passwords. A password is typically stored in battery-backed CMOS RAM memory. Before the user is allowed access to the computer or secured computer resources, the user is required to enter a password. Once a password is entered, the computer's power-on routine compares the password to the password in CMOS memory and, if they match, the user is allowed access.
A main disadvantage of this system is that certain forms of attack can bypass the CMOS memory because in many cases it is not read protected. To address this concern, the password can be encoded. Many encoding schemes can be reverse engineered by a sophisticated computer virus or malicious code, however, potentially leading to a costly security breach. Further, the CMOS memory could simply be disconnected from its battery, causing the loss of the password and any other contents.
Physical keys or tokens, such as those used to unlock a door, have also been used to permit access to a computer system. Like the password approach, this type of security is "one-piece" in nature, and is compromised if the key or token is stolen. Anyone possessing the key can gain access to the computer's data and is accorded the same level of access as the authorized user.
Providing sufficient security can be particularly difficult for portable computers. Unlike their desktop counterparts, portable computers are easily stolen. Once stolen, the security afforded by physical keys or passwords used to protect data stored on a hard drive or other mass storage devices is readily bypassed. For example, it is a simple procedure to physically remove the hard drive unit from the stolen computer--which is password protected--and install it in a second computer system. Because the surrogate computer system may not employ password protection or the password may be known, the hard drive unit or other mass storage device becomes readily accessible to an unauthorized user and its data is vulnerable to theft and misuse.
To prevent unauthorized access of this type, the data may be encrypted before it is placed on the hard drive, rendering the data meaningless until it is decoded. Encryption, however, reduces the computer system's performance due to the delay associated with the encryption process. To confront this problem, hard drives and other storage devices have been created which prevent data access operations on the hard drive upon power-up until the user enters a password. The password is located on the disk itself to prevent bypassing the hard drive security by installation in a new computer system. This type of security, while generally effective, is again one-piece in nature and is only as secure as the password itself. Currently, there exists no satisfactory method of protecting vulnerable or stolen computer equipment and the data it might contain from unauthorized access.